code: def prepare_base_build_command(
      image_params: CommonBuildParams,
  ) -> list[str]:
      """
      Prepare build command for docker build. Depending on whether we have buildx plugin installed or not,
      and whether we run cache preparation, there might be different results:
  
      * if buildx plugin is installed - `docker buildx` command is returned - using regular or cache builder
        depending on whether we build regular image or cache
      * if no buildx plugin is installed, and we do not prepare cache, regular docker `build` command is used.
      * if no buildx plugin is installed, and we prepare cache - we fail. Cache can only be done with buildx
      :param image_params: parameters of the image
  
      :return: command to use as docker build command
      """
      build_command_param = []
      is_buildx_available = check_if_buildx_plugin_installed()
      if is_buildx_available:
          build_command_param.extend(
              [
                  "buildx",
                  "build",
                  "--push" if image_params.push else "--load",
              ]
          )
          if not image_params.docker_host:
              build_command_param.extend(
                  [
                      "--builder",
                      get_and_use_docker_context(image_params.builder),
                  ]
              )
      else:
          build_command_param.append("build")
      return build_command_param
  
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 9 for calling a global function with example usage: prepare_base_build_command(image_params) and returns: build_command_param