code: def build_data_validator_params(base_trace_node: TraceNode):
      """
      Build a dict of constructor params for the DataValidator.
      (This is the validator that inputs a list of traces)
      Parameters
      ----------
      base_trace_node : PlotlyNode
          PlotlyNode that is the parent of all of the individual trace nodes
      Returns
      -------
      dict
          Mapping from property name to repr-string of property value.
      """
      # Get list of trace nodes
      # -----------------------
      tracetype_nodes = base_trace_node.child_compound_datatypes
  
      # Build class_map_repr string
      # ---------------------------
      # This is the repr-form of a dict from trace propert name string
      # to the name of the trace datatype class in the graph_objs package.
      buffer = StringIO()
      buffer.write("{\n")
      for i, tracetype_node in enumerate(tracetype_nodes):
          sfx = "," if i < len(tracetype_nodes) else ""
          trace_name = tracetype_node.name_property
          trace_datatype_class = tracetype_node.name_datatype_class
          buffer.write(
              f"""
              '{trace_name}': '{trace_datatype_class}'{sfx}"""
          )
  
      buffer.write(
          """
          }"""
      )
  
      class_map_repr = buffer.getvalue()
  
      # Build params dict
      # -----------------
      params = {
          "class_strs_map": class_map_repr,
          "plotly_name": repr("data"),
          "parent_name": repr(""),
      }
  
      return params
  
file_path: plotly.py/packages/python/plotly/codegen/validators.py
imports: import os.path
  from io import StringIO
  import _plotly_utils.basevalidators
  from codegen.utils import PlotlyNode, TraceNode, write_source_py
label_desc: Use image node_id 3 for calling a global function with example usage: build_data_validator_params(base_trace_node) and returns: params