code: def test_checkout_targets_deps(tmp_dir, scm, dvc, exp_stage):
      from dvc.utils.fs import remove
  
      tmp_dir.dvc_gen({"foo": "foo", "bar": "bar"}, commit="add files")
      stage = dvc.stage.add(
          cmd="python copy.py params.yaml metrics.yaml",
          metrics_no_cache=["metrics.yaml"],
          params=["foo"],
          name="copy-file",
          deps=["copy.py", "foo"],
          force=True,
      )
      remove("foo")
      remove("bar")
  
      dvc.experiments.run(stage.addressing, params=["foo=2"])
      assert (tmp_dir / "foo").exists()
      assert (tmp_dir / "foo").read_text() == "foo"
      assert not (tmp_dir / "bar").exists()
  
imports: import itertools
  import logging
  import os
  import stat
  from textwrap import dedent
  import pytest
  from configobj import ConfigObj
  from funcy import first
  from dvc.dvcfile import PROJECT_FILE
  from dvc.env import DVC_EXP_BASELINE_REV, DVC_EXP_NAME, DVC_ROOT, DVC_STUDIO_OFFLINE, DVC_STUDIO_REPO_URL, DVC_STUDIO_TOKEN, DVC_STUDIO_URL
  from dvc.exceptions import DvcException, ReproductionError
  from dvc.repo.experiments.exceptions import ExperimentExistsError
  from dvc.repo.experiments.queue.base import BaseStashQueue
  from dvc.repo.experiments.refs import CELERY_STASH
  from dvc.repo.experiments.utils import exp_refs_by_rev
  from dvc.scm import SCMError, resolve_rev
  from dvc.stage.exceptions import StageFileDoesNotExistError
  from dvc.testing.scripts import COPY_SCRIPT
  from dvc.utils.serialize import PythonFileCorruptedError
label_desc: Use image node_id 16 for calling a global function with example usage: test_checkout_targets_deps(tmp_dir, scm, dvc, exp_stage) without return types