code: def create_syft_bundle(
      bundle_path: Path,
      archive_path: Path,
      config_path: Path,
      dryrun: bool = False,
  ) -> None:
      if dryrun:
          debug(
              f"Bundle: {bundle_path}\n"
              f"+ Image: {archive_path}\n"
              f"+ Deployment Config: {config_path}\n"
          )
          return
  
      if bundle_path.exists():
          bundle_path.unlink()
  
      with tarfile.open(str(bundle_path), "w") as bundle:
          # extract assets config as-is into bundle root
          with tarfile.open(str(config_path), "r:gz") as asset:
              for member in asset.getmembers():
                  bundle.addfile(member, asset.extractfile(member))
  
          # add image archive into the bundle
          bundle.add(archive_path, arcname=archive_path.name)
  
imports: from enum import Enum
  from pathlib import Path
  from shutil import rmtree
  import tarfile
  from typing import List
  from typer import Exit
  from typer import Option
  from typing_extensions import Annotated
  from ..core.console import debug
  from ..core.console import error
  from ..core.console import info
  from ..core.console import success
  from ..core.container_engine import ContainerEngine
  from ..core.container_engine import ContainerEngineError
  from ..core.container_engine import Docker
  from ..core.container_engine import Podman
  from ..core.syft_repo import SyftRepo
  from ..core.syft_version import InvalidVersion
  from ..core.syft_version import SyftVersion
label_desc: Use image node_id 11 for calling a global function with example usage: create_syft_bundle(bundle_path, archive_path, config_path, dryrun) without return types