code: def __get_size_constants(
      chart_height,
      chart_width,
      num_attributes,
      num_metrics,
      max_num_groups,
  ):
      """Calculates the heights, widths and spacings of the components of the summary chart
      based on the provided desired overall chart height and width, as well as the number of
      attributes (columns) and metrics (lines)."""
  
      size_constants = dict(
          # Chart sizes
          attribute_titles_height=0.15 * chart_height,
          line_spacing=0.2 * chart_height / num_metrics,
          line_height=Summary_Chart.line_height_ratio
          * chart_height
          / num_metrics,
          metric_titles_width=0.1 * chart_width,
          column_spacing=0.15 * chart_width / num_attributes,
          column_width=Summary_Chart.column_width_ratio
          * chart_width
          / num_attributes,
          # Circle size
          ## Conditional definition of the size where for each additional unit in
          ## max_num_groups, we subtract 25 squared pixels from the area of the
          ## circle, which has the base value of 350 for 0 groups. From max_num_groups
          ## equal to 13 or more, we keep the size at the minimum value of 25 to
          ## make sure the circles are visible.
          group_circle_size=-25 * max_num_groups + 350
          if max_num_groups < 13
          else 25,
      )
      return size_constants
  
imports: import altair
  import pandas
  from aequitas.plot.commons.helpers import no_axis, transform_ratio, format_number, get_chart_metadata
  from aequitas.plot.commons.tooltips import get_tooltip_text_group_size, get_tooltip_text_disparity_explanation, get_tooltip_text_parity_test_explanation
  from aequitas.plot.commons.style.classes import Title, Subtitle, Parity_Result, Annotation, Legend
  from aequitas.plot.commons.style.text import FONT
  from aequitas.plot.commons.style.sizes import Summary_Chart
  from aequitas.plot.commons import initializers
  from aequitas.plot.commons import validators
  from aequitas.plot.commons import labels
label_desc: Use image node_id 2 for calling a global function with example usage: __get_size_constants(chart_height, chart_width, num_attributes, num_metrics, max_num_groups) and returns: size_constants