code: def _draw_task_group(
      task_group: TaskGroup,
      parent_graph: graphviz.Digraph,
      states_by_task_id: dict[str, str] | None,
  ) -> None:
      """Draw the given task_group and its children on the given parent_graph."""
      # Draw joins
      if task_group.upstream_group_ids or task_group.upstream_task_ids:
          parent_graph.node(
              task_group.upstream_join_id,
              _attributes={
                  "label": "",
                  "shape": "circle",
                  "style": "filled,rounded",
                  "color": _refine_color(task_group.ui_fgcolor),
                  "fillcolor": _refine_color(task_group.ui_color),
                  "width": "0.2",
                  "height": "0.2",
              },
          )
  
      if (
          task_group.downstream_group_ids
          or task_group.downstream_task_ids
      ):
          parent_graph.node(
              task_group.downstream_join_id,
              _attributes={
                  "label": "",
                  "shape": "circle",
                  "style": "filled,rounded",
                  "color": _refine_color(task_group.ui_fgcolor),
                  "fillcolor": _refine_color(task_group.ui_color),
                  "width": "0.2",
                  "height": "0.2",
              },
          )
  
      # Draw children
      for child in sorted(
          task_group.children.values(),
          key=lambda t: t.node_id if t.node_id else "",
      ):
          _draw_nodes(child, parent_graph, states_by_task_id)
  
file_path: airflow/airflow/utils/dot_renderer.py
imports: from __future__ import annotations
  import warnings
  from typing import TYPE_CHECKING, Any
  from airflow.exceptions import AirflowException
  from airflow.models.baseoperator import BaseOperator
  from airflow.models.mappedoperator import MappedOperator
  from airflow.utils.dag_edges import dag_edges
  from airflow.utils.state import State
  from airflow.utils.task_group import TaskGroup
label_desc: Use image node_id 3 for calling a global function with example usage: _draw_task_group(task_group, parent_graph, states_by_task_id) without return types