code: def create_metadata_file(
      launch_project: LaunchProject,
      image_uri: str,
      sanitized_entrypoint_str: str,
      sanitized_dockerfile_contents: str,
  ) -> None:
      assert launch_project.project_dir is not None
      with open(
          os.path.join(
              launch_project.project_dir, DEFAULT_LAUNCH_METADATA_PATH
          ),
          "w",
      ) as f:
          json.dump(
              {
                  **launch_project.launch_spec,
                  "image_uri": image_uri,
                  "command": sanitized_entrypoint_str,
                  "dockerfile_contents": sanitized_dockerfile_contents,
              },
              f,
          )
  
imports: import enum
  import json
  import logging
  import os
  import tempfile
  from copy import deepcopy
  from typing import TYPE_CHECKING, Any, Dict, List, Optional, cast
  import wandb
  import wandb.docker
  from wandb.apis.internal import Api
  from wandb.errors import CommError
  from wandb.sdk.launch import utils
  from wandb.sdk.lib.runid import generate_id
  from .errors import LaunchError
  from .utils import LOG_PREFIX, recursive_macro_sub
label_desc: Use image node_id 4 for calling a global function with example usage: create_metadata_file(launch_project, image_uri, sanitized_entrypoint_str, sanitized_dockerfile_contents) without return types