code: def pull_images(
      engine_sdk: ContainerEngine,
      image_tags: List[str],
      dryrun: bool = False,
  ) -> None:
      def fn_print_std(line: str) -> None:
          debug(line, end="", sep="")
  
      try:
          results = engine_sdk.pull(
              image_tags,
              stream_output={
                  "cb_stdout": fn_print_std,
                  "cb_stderr": fn_print_std,
              },
              dryrun=dryrun,
          )
          dryrun and [debug(result.args) for result in results]  # type: ignore[func-returns-value]
      except ContainerEngineError as e:
          error("Error:", e)
          raise Exit(e.returncode)
  
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 4 for calling a global function with example usage: pull_images(engine_sdk, image_tags, dryrun) without return types