class_docstr: Base class for FigureWidget. The FigureWidget class is code-generated as a
  subclass
class_docstr_tok: ["Base","class","for","FigureWidget",".","The","FigureWidget","class","is","code-generated","as","a","subclass"]
docstr: Send Plotly.restyle message to the frontend
  
  Parameters
  ----------
  restyle_data : dict
      Plotly.restyle restyle data
  trace_indexes : list[int]
      List of trace indexes that the restyle operation
      applies to
  source_view_id : str
      UID of view that triggered this restyle operation
      (e.g. By the user clicking the legend to hide a trace).
      None if the operation was not triggered by a frontend view
docstr_tok: ["Send","Plotly.restyle","message","to","the","frontend","Parameters","--","--","--","--","--","restyle_data",":","dict","Plotly.restyle","restyle","data","trace_indexes",":","list","[","int","]","List","of","trace","indexes","that","the","restyle","operation","applies","to","source_view_id",":","str","UID","of","view","that","triggered","this","restyle","operation","(","e.g",".","By","the","user","clicking","the","legend","to","hide","a","trace",")",".","None","if","the","operation","was","not","triggered","by","a","frontend","view"]
code: def _send_restyle_msg(
      self, restyle_data, trace_indexes=None, source_view_id=None
  ):
      """
      Send Plotly.restyle message to the frontend
  
      Parameters
      ----------
      restyle_data : dict
          Plotly.restyle restyle data
      trace_indexes : list[int]
          List of trace indexes that the restyle operation
          applies to
      source_view_id : str
          UID of view that triggered this restyle operation
          (e.g. By the user clicking the legend to hide a trace).
          None if the operation was not triggered by a frontend view
      """
  
      # Validate / normalize inputs
      # ---------------------------
      trace_indexes = self._normalize_trace_indexes(trace_indexes)
  
      # Increment layout/trace edit message IDs
      # ---------------------------------------
      layout_edit_id = self._last_layout_edit_id + 1
      self._last_layout_edit_id = layout_edit_id
      self._layout_edit_in_process = True
  
      trace_edit_id = self._last_trace_edit_id + 1
      self._last_trace_edit_id = trace_edit_id
      self._trace_edit_in_process = True
  
      # Build message
      # -------------
      restyle_msg = {
          "restyle_data": restyle_data,
          "restyle_traces": trace_indexes,
          "trace_edit_id": trace_edit_id,
          "layout_edit_id": layout_edit_id,
          "source_view_id": source_view_id,
      }
  
      # Send message
      # ------------
      self._py2js_restyle = restyle_msg
      self._py2js_restyle = None
  
imports: import uuid
  from importlib import import_module
  import os
  import numbers
  import ipywidgets
  from traitlets import List, Unicode, Dict, observe, Integer
  from .basedatatypes import BaseFigure, BasePlotlyType
  from .callbacks import BoxSelector, LassoSelector, InputDeviceState, Points
  from .serializers import custom_serializers
  from .version import __frontend_version__
label_desc: Use image node_id 3 for calling the BaseFigureWidget obj's underlying member method code with example usage: obj._send_restyle_msg(restyle_data, trace_indexes, source_view_id) without return types