@@ -794,6 +794,23 @@ def _construct_hf_data_dict(
794
794
"hovertext" : dc .hovertext ,
795
795
}
796
796
797
+ @staticmethod
798
+ def _add_trace_to_add_traces_kwargs (kwargs : dict ) -> dict :
799
+ """Convert the `add_trace` kwargs to the `add_traces` kwargs."""
800
+ # The keywords that need to be converted to a list
801
+ convert_keywords = ["row" , "col" , "secondary_y" ]
802
+
803
+ updated_kwargs = {} # The updated kwargs (from `add_trace` to `add_traces`)
804
+ for keyword in convert_keywords :
805
+ value = kwargs .pop (keyword , None )
806
+ if value is not None :
807
+ updated_kwargs [f"{ keyword } s" ] = [value ]
808
+ else :
809
+ updated_kwargs [f"{ keyword } s" ] = None
810
+
811
+ return {** kwargs , ** updated_kwargs }
812
+
813
+
797
814
def add_trace (
798
815
self ,
799
816
trace : Union [BaseTraceType , dict ],
@@ -955,17 +972,22 @@ def add_trace(
955
972
# Hence, you first downsample the trace.
956
973
trace = self ._check_update_trace_data (trace )
957
974
assert trace is not None
958
- return super (self ._figure_class , self ).add_trace (trace , ** trace_kwargs )
975
+ return super (AbstractFigureAggregator , self ).add_traces (
976
+ [trace ], ** self ._add_trace_to_add_traces_kwargs (trace_kwargs )
977
+ )
959
978
else :
960
979
self ._print (f"[i] NOT resampling { trace ['name' ]} - len={ n_samples } " )
961
980
# TODO: can be made more generic
962
981
trace .x = dc .x
963
982
trace .y = dc .y
964
983
trace .text = dc .text
965
984
trace .hovertext = dc .hovertext
966
- return super (self ._figure_class , self ).add_trace (trace , ** trace_kwargs )
967
-
968
- return super (self ._figure_class , self ).add_trace (trace , ** trace_kwargs )
985
+ return super (AbstractFigureAggregator , self ).add_traces (
986
+ [trace ], ** self ._add_trace_to_add_traces_kwargs (trace_kwargs )
987
+ )
988
+ return super (AbstractFigureAggregator , self ).add_traces (
989
+ [trace ], ** self ._add_trace_to_add_traces_kwargs (trace_kwargs )
990
+ )
969
991
970
992
def add_traces (
971
993
self ,
@@ -1152,8 +1174,8 @@ def replace(self, figure: go.Figure, convert_existing_traces: bool = True):
1152
1174
)
1153
1175
1154
1176
def construct_update_data (
1155
- self ,
1156
- relayout_data : dict
1177
+ self ,
1178
+ relayout_data : dict ,
1157
1179
) -> Union [List [dict ], dash .no_update ]:
1158
1180
"""Construct the to-be-updated front-end data, based on the layout change.
1159
1181
0 commit comments