class_docstr: Base class for FigureWidget. The FigureWidget class is code-generated as a
  subclass
docstr: Send Plotly.update message to the frontend
  
  Parameters
  ----------
  restyle_data : dict
      Plotly.update restyle data
  relayout_data : dict
      Plotly.update relayout data
  trace_indexes : list[int]
      List of trace indexes that the update operation applies to
  source_view_id : str
      UID of view that triggered this update operation
      (e.g. By the user clicking a button).
      None if the operation was not triggered by a frontend view
docstr_tok: ["Send","Plotly.update","message","to","the","frontend","Parameters","--","--","--","--","--","restyle_data",":","dict","Plotly.update","restyle","data","relayout_data",":","dict","Plotly.update","relayout","data","trace_indexes",":","list","[","int","]","List","of","trace","indexes","that","the","update","operation","applies","to","source_view_id",":","str","UID","of","view","that","triggered","this","update","operation","(","e.g",".","By","the","user","clicking","a","button",")",".","None","if","the","operation","was","not","triggered","by","a","frontend","view"]
code: def _send_update_msg(
      self,
      restyle_data,
      relayout_data,
      trace_indexes=None,
      source_view_id=None,
  ):
      """
      Send Plotly.update message to the frontend
  
      Parameters
      ----------
      restyle_data : dict
          Plotly.update restyle data
      relayout_data : dict
          Plotly.update relayout data
      trace_indexes : list[int]
          List of trace indexes that the update operation applies to
      source_view_id : str
          UID of view that triggered this update operation
          (e.g. By the user clicking a button).
          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
      # ---------------------------------------
      trace_edit_id = self._last_trace_edit_id + 1
      self._last_trace_edit_id = trace_edit_id
      self._trace_edit_in_process = True
  
      layout_edit_id = self._last_layout_edit_id + 1
      self._last_layout_edit_id = layout_edit_id
      self._layout_edit_in_process = True
  
      # Build message
      # -------------
      update_msg = {
          "style_data": restyle_data,
          "layout_data": relayout_data,
          "style_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_update = update_msg
      self._py2js_update = None
  
imports: 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 6 for calling the BaseFigureWidget obj's underlying member method code with example usage: obj._send_update_msg(restyle_data, relayout_data, trace_indexes, source_view_id) without return types