Skip to content

Commit d1668b6

Browse files
authored
Merge pull request #3946 from jvdd/avoid_deepcopy
♻️ avoid deepcopy of dict in validate_coerce
2 parents 216fca2 + 605ac4f commit d1668b6

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

packages/python/plotly/_plotly_utils/basevalidators.py

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from importlib import import_module
88
import copy
99
import io
10-
from copy import deepcopy
1110
import re
1211
import sys
1312

@@ -2662,34 +2661,34 @@ def validate_coerce(self, v, skip_invalid=False, _validate=True):
26622661
for v_el in v:
26632662

26642663
if isinstance(v_el, BaseTraceType):
2665-
# Clone input traces
2666-
v_el = v_el.to_plotly_json()
2664+
if isinstance(v_el, Histogram2dcontour):
2665+
v_el = dict(type="histogram2dcontour", **v_el._props)
2666+
else:
2667+
v_el = v_el._props
26672668

26682669
if isinstance(v_el, dict):
2669-
v_copy = deepcopy(v_el)
2670-
2671-
if "type" in v_copy:
2672-
trace_type = v_copy.pop("type")
2673-
elif isinstance(v_el, Histogram2dcontour):
2674-
trace_type = "histogram2dcontour"
2675-
else:
2676-
trace_type = "scatter"
2670+
type_in_v_el = "type" in v_el
2671+
trace_type = v_el.pop("type", "scatter")
26772672

26782673
if trace_type not in self.class_strs_map:
26792674
if skip_invalid:
26802675
# Treat as scatter trace
26812676
trace = self.get_trace_class("scatter")(
2682-
skip_invalid=skip_invalid, _validate=_validate, **v_copy
2677+
skip_invalid=skip_invalid, _validate=_validate, **v_el
26832678
)
26842679
res.append(trace)
26852680
else:
26862681
res.append(None)
26872682
invalid_els.append(v_el)
26882683
else:
26892684
trace = self.get_trace_class(trace_type)(
2690-
skip_invalid=skip_invalid, _validate=_validate, **v_copy
2685+
skip_invalid=skip_invalid, _validate=_validate, **v_el
26912686
)
26922687
res.append(trace)
2688+
2689+
if type_in_v_el:
2690+
# Restore type in v_el
2691+
v_el["type"] = trace_type
26932692
else:
26942693
if skip_invalid:
26952694
# Add empty scatter trace

0 commit comments

Comments
 (0)