code: def __draw_metrics_rules(metrics, scales, concat_chart):
      """Draws an horizontal rule for each metric where the bubbles will be positioned."""
  
      metrics_labels = [metric.upper() for metric in metrics]
  
      if concat_chart:
          y_axis = no_axis()
      else:
          y_axis = alt.Axis(
              domain=False,
              ticks=False,
              orient="left",
              labelAngle=Metric_Axis.label_angle,
              labelPadding=Metric_Axis.label_padding,
              title=None,
          )
  
      horizontal_rules = (
          alt.Chart(
              pd.DataFrame(
                  {"y_position": metrics_labels, "start": 0, "end": 1}
              )
          )
          .mark_rule(
              strokeWidth=Metric_Axis.stroke_width,
              stroke=Metric_Axis.stroke,
              tooltip=None,
          )
          .encode(
              y=alt.Y("y_position:N", scale=scales["y"], axis=y_axis),
              x=alt.X("start:Q", scale=scales["x"]),
              x2="end:Q",
          )
      )
  
      return horizontal_rules
  
imports: import altair
  import pandas
  from aequitas.plot.commons.helpers import no_axis, transform_ratio, get_chart_metadata
  from aequitas.plot.commons.legend import draw_legend
  from aequitas.plot.commons.scales import get_chart_size_range
  from aequitas.plot.commons.tooltips import get_tooltip_text_group_size, get_tooltip_text_disparity_explanation
  from aequitas.plot.commons.style.classes import Metric_Axis, Axis, Threshold_Band, Threshold_Rule, Annotation, Bubble, Rule, Chart_Title
  from aequitas.plot.commons.style.sizes import Metric_Chart
  from aequitas.plot.commons.style.text import FONT, FONT_SIZE_SMALL
  from aequitas.plot.commons import initializers
  from aequitas.plot.commons import labels
label_desc: Use image node_id 2 for calling a global function with example usage: __draw_metrics_rules(metrics, scales, concat_chart) and returns: horizontal_rules