code: def bring_compose_project_down(
      preserve_volumes: bool, shell_params: ShellParams
  ):
      down_command_to_execute = ["docker", "compose"]
      if shell_params.project_name:
          down_command_to_execute.extend(
              ["--project-name", shell_params.project_name]
          )
      down_command_to_execute.extend(["down", "--remove-orphans"])
      if not preserve_volumes:
          down_command_to_execute.append("--volumes")
      run_command(
          down_command_to_execute,
          text=True,
          check=False,
          capture_output=shell_params.quiet,
          env=shell_params.env_variables_for_docker_commands,
      )
  
imports: from __future__ import annotations
  import copy
  import json
  import os
  import re
  import sys
  from subprocess import DEVNULL, CalledProcessError, CompletedProcess
  from typing import TYPE_CHECKING
  from airflow_breeze.params.build_prod_params import BuildProdParams
  from airflow_breeze.utils.cache import read_from_cache_file
  from airflow_breeze.utils.host_info_utils import get_host_group_id, get_host_os, get_host_user_id
  from airflow_breeze.utils.path_utils import AIRFLOW_SOURCES_ROOT, SCRIPTS_DOCKER_DIR, cleanup_python_generated_files, create_mypy_volume_if_needed
  from airflow_breeze.utils.shared_options import get_verbose
  from airflow_breeze.utils.visuals import ASCIIART, ASCIIART_STYLE, CHEATSHEET, CHEATSHEET_STYLE
  from airflow_breeze.global_constants import ALLOWED_CELERY_BROKERS, ALLOWED_DEBIAN_VERSIONS, DEFAULT_PYTHON_MAJOR_MINOR_VERSION, DOCKER_DEFAULT_PLATFORM, MIN_DOCKER_COMPOSE_VERSION, MIN_DOCKER_VERSION, SEQUENTIAL_EXECUTOR
  from airflow_breeze.utils.console import Output, get_console
  from airflow_breeze.utils.run_utils import RunCommandResult, check_if_buildx_plugin_installed, run_command
label_desc: Use image node_id 25 for calling a global function with example usage: bring_compose_project_down(preserve_volumes, shell_params) without return types