class_docstr: Abstract interface for data aggregation functionality for plotly figures.
class_docstr_tok: ["Abstract","interface","for","data","aggregation","functionality","for","plotly","figures","."]
docstr: Check and update the traces within the figure dict.
  
  hint
  ----
  This method will most likely be used within a ``Dash`` callback to resample the
  view, based on the configured number of parameters.
  
  Note
  ----
  This is a pass by reference. The passed figure object will be updated.
  No new view of this figure will be created, hence no return!
  
  Parameters
  ----------
  figure : dict
      The figure dict which will be updated.
  start : Union[float, str], optional
      The start time for the new resampled data view, by default None.
  stop : Union[float, str], optional
      The end time for the new resampled data view, by default None.
  layout_xaxis_filter: str, optional
      Additional layout xaxis filter, e.g. the affected x-axis values by the
      triggered relayout event (e.g. xaxis), by default None.
  updated_trace_indices: List[int], optional
      List of trace indices that already have been updated, by default None.
  
  Returns
  -------
  List[int]
      A list of indices withholding the trace-data-array-index from the of data
      modalities which are updated.
docstr_tok: ["Check","and","update","the","traces","within","the","figure","dict",".","hint","--","--","This","method","will","most","likely","be","used","within","a","``","Dash","``","callback","to","resample","the","view",",","based","on","the","configured","number","of","parameters",".","Note","--","--","This","is","a","pass","by","reference",".","The","passed","figure","object","will","be","updated",".","No","new","view","of","this","figure","will","be","created",",","hence","no","return","!","Parameters","--","--","--","--","--","figure",":","dict","The","figure","dict","which","will","be","updated",".","start",":","Union","[","float",",","str","]",",","optional","The","start","time","for","the","new","resampled","data","view",",","by","default","None",".","stop",":","Union","[","float",",","str","]",",","optional","The","end","time","for","the","new","resampled","data","view",",","by","default","None",".","layout_xaxis_filter",":","str",",","optional","Additional","layout","xaxis","filter",",","e.g",".","the","affected","x-axis","values","by","the","triggered","relayout","event","(","e.g",".","xaxis",")",",","by","default","None",".","updated_trace_indices",":","List","[","int","]",",","optional","List","of","trace","indices","that","already","have","been","updated",",","by","default","None",".","Returns","--","--","--","-","List","[","int","]","A","list","of","indices","withholding","the","trace-data-array-index","from","the","of","data","modalities","which","are","updated","."]
code: def _check_update_figure_dict(
      self,
      figure: dict,
      start: Optional[Union[float, str]] = None,
      stop: Optional[Union[float, str]] = None,
      layout_xaxis_filter: Optional[str] = None,
      updated_trace_indices: Optional[List[int]] = None,
  ) -> List[int]:
      """Check and update the traces within the figure dict.
  
      hint
      ----
      This method will most likely be used within a ``Dash`` callback to resample the
      view, based on the configured number of parameters.
  
      Note
      ----
      This is a pass by reference. The passed figure object will be updated.
      No new view of this figure will be created, hence no return!
  
      Parameters
      ----------
      figure : dict
          The figure dict which will be updated.
      start : Union[float, str], optional
          The start time for the new resampled data view, by default None.
      stop : Union[float, str], optional
          The end time for the new resampled data view, by default None.
      layout_xaxis_filter: str, optional
          Additional layout xaxis filter, e.g. the affected x-axis values by the
          triggered relayout event (e.g. xaxis), by default None.
      updated_trace_indices: List[int], optional
          List of trace indices that already have been updated, by default None.
  
      Returns
      -------
      List[int]
          A list of indices withholding the trace-data-array-index from the of data
          modalities which are updated.
  
      """
      if updated_trace_indices is None:
          updated_trace_indices = []
  
      if layout_xaxis_filter is not None:
          layout_trace_mapping = (
              self._layout_xaxis_to_trace_xaxis_mapping()
          )
          # Retrieve the trace xaxis values that are affected by the relayout event
          trace_xaxis_filter: List[str] = layout_trace_mapping[
              layout_xaxis_filter
          ]
  
      for idx, trace in enumerate(figure["data"]):
          # We skip when (i) the trace-idx already has been updated or (ii) when
          # there is a layout_xaxis_filter and the trace xaxis is not in the filter
          if idx in updated_trace_indices or (
              layout_xaxis_filter is not None
              and trace.get("xaxis", "x") not in trace_xaxis_filter
          ):
              continue
  
          # If we managed to find and update the trace, it will return the trace
          # and thus not None.
          updated_trace = self._check_update_trace_data(
              trace, start=start, end=stop
          )
          if updated_trace is not None:
              updated_trace_indices.append(idx)
      return updated_trace_indices
  
imports: from __future__ import annotations
  import itertools
  import re
  from abc import ABC
  from collections import namedtuple
  from copy import copy
  from typing import Dict, Iterable, List, Optional, Tuple, Union
  from uuid import uuid4
  import dash
  import numpy
  import pandas
  import plotly.graph_objects
  from pandas.io.json._normalize import nested_to_record
  from plotly.basedatatypes import BaseFigure, BaseTraceType
  from ..aggregation import AbstractAggregator, MedDiffGapHandler, MinMaxLTTB
  from ..aggregation.aggregation_interface import DataPointSelector
  from ..aggregation.gap_handler_interface import AbstractGapHandler
  from ..aggregation.plotly_aggregator_parser import PlotlyAggregatorParser
  from .utils import round_number_str, round_td_str
label_desc: Use image node_id 8 for calling the AbstractFigureAggregator obj's underlying member method code with example usage: obj._check_update_figure_dict(figure, start, stop, layout_xaxis_filter, updated_trace_indices) and returns: updated_trace_indices